import inspect


class False4Bool:

    def __bool__(self):
        func_name = inspect.stack()[0][3]
        print(f'{self.__class__.__name__} {func_name}')
        return False


class False4Len:

    def __len__(self):
        func_name = inspect.stack()[0][3]
        print(f'{self.__class__.__name__} {func_name}')
        return 0


class False4LenBool:

    def __bool__(self):
        func_name = inspect.stack()[0][3]
        print(f'{self.__class__.__name__} {func_name}')
        return False

    def __len__(self):
        func_name = inspect.stack()[0][3]
        print(f'{self.__class__.__name__} {func_name}')
        return 0


false_objects = [None, False, 0, 0.0, 0j, '', (), [], {}, False4Bool(), False4Len(), False4LenBool()]
print([bool(f) for f in false_objects])
